from django.utils.deprecation import MiddlewareMixin
from django.shortcuts import redirect
from app01.models import UserInfo


class AuthMiddleware(MiddlewareMixin):
    """
    用户认证中间件，只允许登录用户访问， 否则拦截并让其跳转到 登录 页面
    """
    # 白名单
    white_list = ['/login/', '/register/']

    def process_request(self, request):
        current_path = request.path
        # 不在白名单中的都需要进行用户认证校验
        if current_path not in self.white_list:
            # 进行校验,方式1，根据用户名查数据库进行校验
            # user_obj = UserInfo.objects.filter(user=request.session.get("user")).first()
            # if not user_obj:
            #     return redirect('/login/')

            # 方式2，根据session中的is_login进行校验
            if not request.session.get("is_login"):
                return redirect('/login/')
